// =============================================
// FD VHS Scanlines
// Made by Ubik and Claude 2026
// =============================================
// Adds horizontal scanlines for authentic
// CRT/VHS monitor aesthetics.
// Connect video source to video in 1.
// =============================================

// ISADORA_PLUGIN_DESC("VHS Scanlines - adds horizontal CRT/VHS scanlines. Density controls spacing, intensity controls darkness.")

// ISADORA_FLOAT_PARAM(scanline_density, scnd, 0.0, 1.0, 0.35, "Density of horizontal scanlines. Low = widely spaced, high = tightly packed.")
// ISADORA_FLOAT_PARAM(scanline_intensity, scin, 0.0, 1.0, 0.5, "Darkness of the scanline gaps. 0 = invisible, 1 = fully black gaps.")

uniform float scanline_density;
uniform float scanline_intensity;
uniform vec3 iResolution;
uniform sampler2D tex0;

void main()
{
    vec2 uv = gl_FragCoord.xy / iResolution.xy;
    vec4 color = texture2D(tex0, uv);

    float scanFreq = mix(200.0, 600.0, scanline_density);
    float scanline = sin(gl_FragCoord.y / iResolution.y * scanFreq * 3.14159) * 0.5 + 0.5;
    float scanDim = mix(1.0, scanline * 0.75 + 0.25, scanline_intensity);
    vec3 result = color.rgb * scanDim;

    gl_FragColor = vec4(result, color.a);
}
